// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.google.zxing.common; import com.google.zxing.DecodeHintType; import java.util.Map; public final class StringUtils { public static final String GB2312 = "GB2312"; public static final String SHIFT_JIS = "SJIS"; private static final String a = System.getProperty("file.encoding"); private static final String b = "EUC_JP"; private static final String c = "UTF8"; private static final String d = "ISO8859_1"; private static final boolean e; private StringUtils() { } public static String guessEncoding(byte abyte0[], Map map) { int i; int j; int k; boolean flag; boolean flag1; int l; boolean flag2; int i1; boolean flag3; boolean flag4; boolean flag5; if (map != null) { String s = (String)map.get(DecodeHintType.CHARACTER_SET); if (s != null) { return s; } } if (abyte0.length > 3 && abyte0[0] == -17 && abyte0[1] == -69 && abyte0[2] == -65) { return "UTF8"; } i = abyte0.length; j = 0; k = 0; flag = false; flag1 = false; l = 0; flag2 = false; i1 = 0; flag3 = true; flag4 = true; flag5 = true; _L3: int j1; if (l >= i || !flag5 && !flag4 && !flag3) { break MISSING_BLOCK_LABEL_519; } j1 = 0xff & abyte0[l]; if (j1 < 128 || j1 > 191) goto _L2; else goto _L1 _L1: boolean flag6; boolean flag7; int i2; boolean flag8; if (j > 0) { j--; flag6 = flag3; } else { flag6 = flag3; } if ((j1 == 194 || j1 == 195) && l < i - 1) { int k2 = 0xff & abyte0[l + 1]; if (k2 <= 191 && (j1 == 194 && k2 >= 160 || j1 == 195 && k2 >= 128)) { flag = true; } } if (j1 >= 127 && j1 <= 159) { flag5 = false; } if (j1 >= 161 && j1 <= 223 && !flag2) { k++; } if (!flag2 && (j1 >= 240 && j1 <= 255 || j1 == 128 || j1 == 160)) { flag7 = false; } else { flag7 = flag4; } if (j1 >= 129 && j1 <= 159 || j1 >= 224 && j1 <= 239) { if (flag2) { flag4 = flag7; i2 = i1; flag8 = false; } else if (l >= -1 + abyte0.length) { i2 = i1; flag8 = true; flag4 = false; } else { int j2 = 0xff & abyte0[l + 1]; if (j2 < 64 || j2 > 252) { flag7 = false; } else { i1++; } flag4 = flag7; i2 = i1; flag8 = true; } } else { flag4 = flag7; i2 = i1; flag8 = false; } l++; flag2 = flag8; i1 = i2; flag3 = flag6; if (true) goto _L3; else goto _L2 _L2: int k1; if (j > 0) { flag6 = false; } else { flag6 = flag3; } if (j1 >= 192 && j1 <= 253) { k1 = j; for (int l1 = j1; (l1 & 0x40) != 0;) { int l2 = k1 + 1; l1 <<= 1; k1 = l2; } break MISSING_BLOCK_LABEL_600; } else { break MISSING_BLOCK_LABEL_149; } if (j > 0) { flag3 = false; } if (flag4 && e) { return "SJIS"; } if (flag3 && flag1) { return "UTF8"; } if (flag4 && (i1 >= 3 || k * 20 > i)) { return "SJIS"; } if (!flag && flag5) { return "ISO8859_1"; } else { return a; } j = k1; flag1 = true; break MISSING_BLOCK_LABEL_149; } static { boolean flag; if ("SJIS".equalsIgnoreCase(a) || "EUC_JP".equalsIgnoreCase(a)) { flag = true; } else { flag = false; } e = flag; } }